
// 引入store
import store from "@/store";

// 基地址

const baseURL = "https://pcapi-xiaotuxian-front-devtest.itheima.net";
// 声明一个对象作为拦截器的配置
const request = {
    // 请求前触发，相当于请求拦截器
  invoke(args) {
    // 显示加载中
    uni.showLoading({ title: "加载中" });
    //args为当前发送的请求的信息
    // 如果当前请求的url不包含htpp说明只有资源路径，那么要进行拼接基地址
    if (!args.url.startsWith("http")) {
      args.url = baseURL + args.url;
    }
    args.header = {
      ...args.header, // 保留原本的 header
      "source-client": "miniapp", // 添加小程序端调用标识
    };

    //判断有没有token
    if(store.state.user.token){
      // 给header添加Authorization字段赋值Token
      args.header.Authorization=store.state.user.token
    }


  },
  complete(res) {

    if(res.statusCode===401){
      // 跳转到登录页面
      //这里进入登录后直接就跳转到原本要访问的页面
      // 是因为在登录页面登录成功后跳转上一页
      uni.navigateTo({
        url:'/pages/login/index'
      })
    }
    uni.hideLoading();
  }
};
uni.addInterceptor("request", request);
uni.addInterceptor("uploadFile", request);

export default (options) => {
  return new Promise((resolve, reject) => {
    uni.request({
      ...options,
      success(res) {
        if (res.statusCode >= 200 && res.statusCode < 300) {
          resolve(res.data);
        } else {
          reject(res);
        }
      },
      fail(err) {
        reject(res);
      },
    });
  });
};